Keyboard input control method and system

ABSTRACT

A method for processing input from a keyboard of a hand-held computing device includes receiving a plurality of key input events and, from the plurality of key input events, determining whether there is a double selection event corresponding to a specified key from the keyboard. Further, the method includes, when it is determined that there is the double selection event corresponding to the specified key, determining a key selection offset between a first and second key selection action of the double selection. The method also includes deciding whether the key selection offset is substantially equal to or greater than a predetermined threshold and, when it is decided that the key selection offset is substantially equal to or greater than the predetermined threshold, using at least a first key as key input of the double selection event. The first key and the specified key are different.

This application claims the benefit of U.S. Provisional Application Ser.No. 61/603,323, filed on Feb. 26, 2012.

BACKGROUND

The present invention generally relates to hand-held computing devicetechnologies and, more particularly, to the methods and systems forinput control and management.

Smart phones and other hand-held computing devices integrate manyfunctions into a single device. For example, a modern hand-heldcomputing device often provides two-way, full text messaging to its userand permits the user to initiate messages and to respond to messages ina timely fashion and with text entirely created by the user. In order tokeep the form factor of the hand-held computing device small enough tobe worn on the body of the user, such as with a belt clip or in apocket, the input device (e.g., a keyboard) of the hand-held computingdevice is generally configured to be small, to have a minimal number ofkeys, and to be optimized for using a minimal number of key strokes.

Further, the hand-held computing device also permits a user to enter avariety of types of data into the hand-held computing device, such as anaddress book, a calendar, a task list, an email message or a similartext file that requires user-generated or input data. Thus, although thekeyboard only has a minimal number of keys, the keyboard needs to beconfigured with the keys representing the alphabet generally placed inthe same order as they would appear on a standard keyboard, such as theQWERTY keyboard.

These competing requirements may cause inconveniences or difficultiesfor the user to input data into the hand-held computing device. Thedisclosed methods and systems are directed to solve the problems setforth above and other problems.

BRIEF SUMMARY OF THE DISCLOSURE

One aspect of the present disclosure includes a method for processinginput from a keyboard of a hand-held computing device. The methodcomprises receiving a plurality of key input events and, from theplurality of key input events, determining whether there is a doubleselection event corresponding to a particular key from the keyboard,such as the space bar key. The double selection event includes a firstkey selection action and a second key selection action. Further, themethod also includes, when it is determined that a double selectionevent has occurred, determining a key selection offset between the firstkey selection action and the second key selection action. The methodalso includes deciding whether the key selection offset is substantiallyequal to or greater than a predetermined threshold and, when it isdecided that the key selection offset is substantially equal to orgreater than the predetermined threshold, using at least a first key askey input of the double selection event. A key input is then reflectedby the output apparatus, such as a display, of the hand-held computingdevice. In addition, the method includes, when it is decided that thekey selection offset is less than the predetermined threshold, using atleast a second key as the key input of the double selection event.

Another aspect of the present disclosure includes a hand-held computingdevice. The device includes a wireless communication module, a memorymodule, a keyboard, and a processor. The processor is coupled to thememory module, the wireless communication module, and the keyboard.Further, the processor is configured to receive a plurality of key inputevents and to determine whether, from the plurality of key input events,there is a double selection event corresponding to a specified key fromthe keyboard, such as the space bar key. The double selection includes afirst key selection action and a second key selection action. Further,the processor is configured to, when there is the double selection eventcorresponding to the specified key, determine a key selection offsetbetween the first key selection action and the second key selectionaction. The processor is also configured to decide whether the keyselection offset is substantially equal to or greater than apredetermined threshold and, when the key selection offset issubstantially equal to or greater than the predetermined threshold, touse at least a first key as key input of the double selection event. Inaddition, the processor is configured to, when the key selection offsetis less than the predetermined threshold, use at least a second key asthe key input of the double selection event.

Other aspects of the present disclosure can be understood by thoseskilled in the art in light of the description, the claims, and thedrawings of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example hand-held computing device consistent withthe disclosed embodiments;

FIG. 2 illustrates another example hand-held computing device consistentwith the disclosed embodiments;

FIG. 3 illustrates a block diagram of an example hand-held computingdevice consistent with the disclosed embodiments; and

FIG. 4 illustrates an example key input control process consistent withthe disclosed embodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to example embodiments of theinvention, which are illustrated in the accompanying drawings.

FIG. 1 illustrates an example hand-held computing device 100 accordingto certain aspects of the disclosed embodiments. As shown in FIG. 1,hand-held computing device 100 includes a display screen 102 and akeyboard 104. In some configurations, hand-held computing device 100includes other input devices and components, including, for example,on-off switches configured to turn the device on and off or to initiatethe on/off operation, volume control switches configured to receive userinput to increase or decrease the device volume or to initiate thevolume increase/decrease operation, ringer control switches, and cursornavigation components, such as an optical navigation component or trackwheel.

In one configuration, hand-held computing device 100 is a computingdevice for mobile computing. For example, hand-held computing device 100is a mobile phone, a smart phone, a tablet computer, a personal digitalassistant (PDA), or other type of mobile device.

Display screen 102 includes, for example, an appropriate type of devicefor displaying information of hand-held computing device 100. Forexample, display screen 102 includes a liquid crystal display (LCD)device, a light emitting diode (LED) display device, or other text orgraphic display device. Display screen 102 also includes, for example, atouch screen device configured for receiving and/or processing userinput alone or in combination with other device components such as aprocessor. Further, keyboard 104 includes a plurality keys configuredfor hand-held computing applications. More particularly, keyboard 104includes a plurality of character keys (not labeled), certainspecialized keys (not labeled), and a spacebar 106.

Specialized keys include, for example, an “alt” key, a “caps” key, aline feed key, a backspace key, and/or other keys. Further, otherauxiliary input devices are also included in the configuration ofkeyboard 104, such as the thumbwheel or optical navigation componentexplained above. The thumbwheel or optical navigation component is usedto generate respective signals to facilitate key input control. Thethumbwheel or optical navigation component can also be configured to bepushed toward the rear direction to generate an additional input signalto improve key input operations.

A user inputs data by selection individual keys on the keyboard inconjunction with software in hand-held computing device 100. In someconfigurations, the user inputs data by selection a combination of keys.For example, the user may select a key having a predefined functionalstate (for example the “caps” key) and then select another key onkeyboard 104 (for example, the key for the character “a”) to input acombination with additional meaning separate from individual keys onkeyboard 104 (for example, the combination of selecting the “caps” keyfollowed by the “a” key results in inputting the upper case “A”).

Keyboard 104 is a physical keyboard in that actual keys are configuredon hand-held computing device 100 to be selected by the user. However,as explained, other types of keyboards such as a virtual keyboard areused in conjunction with touch screen display configurations. FIG. 2illustrates an example hand-held computing device 200 configured withsuch a virtual keyboard.

As shown in FIG. 2, hand-held computing device 200 includes a touchscreen 202, in addition to other devices and components (not shown). Inthis configuration, a virtual keyboard is provided on touch screen 202.

Hand-held computing device 200 is similar to hand-held computing device100. Computing device 200 is configured for mobile computing, such as amobile phone, a smart phone, a tablet computer, a PDA, or other type ofmobile device. Touch screen 202 includes, for example, a touch screendevice for displaying information to a user of hand-held computingdevice 200 and for the user to input information into hand-heldcomputing device 200.

For example, touch screen 202 includes a touch-detection device incombination with an LCD device, an LED display device, or other graphicdisplay device. To facilitate user input, software in hand-heldcomputing device 200 generates keyboard 204 displayed on touch screen202 such that the user can use the generated keyboard 204 to input data.Keyboard 204 is similar to keyboard 104 or it may be a keyboard indifferent format. A spacebar 206 and other types of keys (not labeled)are also configured in keyboard 204.

Hand-held computing device 100 and hand-held computing device 200 areimplemented by a processor-based hardware and software platform. FIG. 3illustrates a block diagram of an exemplary hand-held computing device300 (i.e., hand-held computing device 100 and/or hand-held computingdevice 200).

As shown in FIG. 3, in one configuration hand-held computing device 300includes a processor 302, a memory module 304, a communication module306, a display 308, an input and output module 310, a sensor module 312,and a wireless module 316. In some configurations some component(s) areomitted and other devices are added without departing the principles ofthe disclosed embodiments. Further, a bus module 314 or otherinterconnecting unit connects the various devices and components.

Processor 302 includes a graphic processing unit (GPU), general-purposemicroprocessor, digital signal processor (DSP) or microcontroller, andapplication specific integrated circuit (ASIC), etc. In someconfigurations, processor 302 also includes co-processor orco-processors for handling specific processing tasks, such as graphicprocessing and security processing, etc. Processor 302 executessequences of computer program instructions to perform various processesassociated with hand-held computing device 300, such as key inputcontrol, editing, and display processes.

Memory module 304 includes memory units used by processor 302 and othercomponents. For example, memory module 304 includes one or moreread-only memory (ROM) units, random access memory (RAM) units, FLASHmemory units, and other storage medium units, such as flash disk andmemory card, etc. The computer program instructions are loaded into RAMunits for execution by processor 302 from ROM units or FLASH memoryunits.

Communication module 306 provides communication connections such thathand-held computing device 300 communicates remotely with other systemsthrough communication networks via various communication protocols, suchas TCP/IP, hyper text transfer protocol (HTTP), etc. Display 308includes any appropriate display devices (e.g., display screen 102,touch screen 202) for displaying information to the user of hand-heldcomputing device 300.

Further, input and output module 310 provides for the user to inputinformation into hand-held computing device 300 or for the user toreceive information from hand-held computing device 300. For example,input and output module 310 includes any appropriate input device, suchas a keyboard or a keypad, a mouse, a microphone, a video camera orweb-cam, a remote control, a scanner, voice communication devices, orany other optical or wireless input devices. In some configurations,input and output module 310 also includes any appropriate output device,such as a speaker or any other output device.

Sensor module 312 includes any appropriate sensor units to providevarious sensing signals to hand-held computing device 300 to enablecertain functionalities, such as touch screen operations, keyboardoperations, and orientation-based display operations. Sensors an detectvarious device conditions, including movement of the device, a change indevice orientation, and acceleration.

Further, wireless module 316 enables short-range and/or long rangewireless communication for hand-held computing device 300 to communicatewith other devices wirelessly via various wireless communicationprotocols and standards, such as Bluetooth, WiFi, GSM, 3G, and 4G. Inaddition, bus module 314 includes one or more buses to interconnectvarious processor(s) and other modules for exchanging data and controlsignals.

In operation, hand-held computing device 300 or, more particularly,processor 302 of hand-held computing device 300 performs certainprocesses to facilitate a user of hand-held computing device 300 toinput data via a keyboard or a keypad (e.g., 104/204). Processor 302 isconfigured to receive the inputted data, to edit/format the inputteddata, and to display the formatted data to the user. FIG. 4 illustratesan exemplary key input control process 400 performed by processor 302.

As shown in FIG. 4, at the beginning of process 400, processor 302receives a key input event (402). When the user selects any key onhand-held computing device 300, processor 302 receives or detects a keyinput event containing parameters of the particular key and/or theparticular key combination. The parameters indicate a key or acombination of keys selected and other information associated with thekey or the combination of keys, such as the identification, keyselecting time or time stamp, orientation, direction, and/or sequence ofthe selected key or combination of keys. Other information may also beincluded.

The key event is a part of a set of key input events. The set of keyinput events correspond to multiple key selection actions by a user as akey input sequence. Processor 302 receives the set of key input eventsin sequence or as a set from the keyboard or keypad device. In certainembodiments, after receiving a key event, processor 302 causes a symbolor character corresponding to the key input event being injected ordisplayed in a text field related to the key input sequence.

After receiving the key input event (402), processor 302 determineswhether there is a double selection event corresponding to a specifiedkey based on the key input event and the previous key input events(404). The term “double selection,” as used herein, refers to asequential action of selecting a particular key (on a physical orvirtual keyword) twice within a predetermined time period, such as, afirst selection action followed by a second selection action within apreset time period. The predetermined time period is preset on systemconfiguration, set by processor 302 using pre-configured parameters ordefault parameters, or set by a user in connection with a deviceconfiguration operation. Further, the predetermined time period is beset to a desired value such that ordinarily selecting the key twice doesnot trigger the double selection event. Alternatively, the term “doubleselection” simply means that a same key is selected twice sequentiallywithout any particular time constraint, i.e., the key is the same forthe key input event and the previous key input event.

The double selection event corresponds to a specified key or keys. Thatis, only double selection event of a specified key or keys is speciallyprocessed by processor 302. If a double selection event of anunspecified key occurs, processor 302 ignores the double selection eventand processes the key input as normal.

Further, the specified key is automatically determined by processor 302or it may be set by the user. In certain embodiments, the specified keyis a spacebar key. In other words, processor 302 determines whether aspacebar double selection event happens. Other keys may also be used.

When a time constraint is set for the double selection event, processor302 determines the time difference between two sequential actions of keyselection based on certain information. For example, processor 302receives the time difference information directly from an input device(e.g., a keyboard or keypad) or processor 302 receives individual timeinformation, such as a time stamp, associated with each key selectionaction and calculates the time difference based on received timeinformation of each key selection action.

If the time difference is within the predetermined time period,processor 302 determines that the double selection event happened;otherwise processor 302 determines that the double selection event didnot occur. Of course, if time constraint is not required, processor 302determines the double selection event without calculating the timedifference. In other words, in some example embodiments there is nomaximum time between two selection events.

Processor 302 also uses different parameters for different types ofkeyboards. For example, for a physical keyboard (e.g., keyboard 104 inFIG. 1), information associated with actual key selection actions may beused by processor 302 to determine the double selection event. On theother hand, for a virtual keyboard on a touch screen (e.g., keyboard 204in FIG. 2), information associated with screen touching actions are usedby processor 302 to determine the double selection event. That is, a keyselection action includes a key touching action (such as receiving atouch on the key) when the keyboard or keypad is displayed on a touchscreen. Thus, in the touch screen configuration, the first key selectionaction and the second key selection action are referred as the first keytouching action and the second key touching action for a touch screenvirtual keyboard. Other parameters may also be used.

If processor 302 determines that the double selection event did nothappen (404; NO), processor 302 continues to use normal key inputwithout special processing (406). That is, processor 302 obtains allinformation associated with actual key input without special processingwith respect to the specified key. In other words, actual key charactercorresponding to the key input event is entered into text or other datastructures without modification.

On the other hand, if processor 302 determines that the double selectionevent for the specified key did happen (404; YES), processor 302 furtherdetermines double selection location information of the specified key(408). That is, processor 302 determines the location or vicinitydifference between the point of first key selection action and the pointof second key selection action, which is also called a key selectionoffset.

Processor 302 determines the key selection offset between two points ofkey selection actions, i.e., double selection, based on various ways.For example, processor 302 receives the key selection offset informationdirectly from the input device (e.g., a keyboard or keypad). Processor302 also receives location information of individual key selectionactions and calculates the key selection offset based on the receivedlocation information of individual key selection actions. For example,processor 302 receives location information indicating that the firstkey selection action is on the left of the spacebar 106 (i.e., thespecified key) and the second key selection action is on the right ofthe spacebar 106. Thus, processor 302 calculates the key selectionoffset as the length of the spacebar 106.

Alternatively, the key selection offset may be a Boolean value of ‘0’ or‘1’, i.e., either with an offset or without an offset. For example, ifthe first key selection action is on the left of the spacebar 106 andthe second key selection action is also on the left of the spacebar 106,i.e., the points of the first and second key selection actions are onthe same side, the key selection offset is set to ‘0’ or ‘false’. If thefirst key selection action is on the left or right of the spacebar 106and the second key selection action is on the different side (right orleft) of the spacebar 106, the offset is set to ‘1’ or ‘true’.

Processor 302 also receives location information indicating a coordinateof the first key touching point of spacebar 206 and a coordinate of thesecond key touching point of spacebar 206 in a touch screen keyboard.Processor 302 calculates the key selection offset as the distancebetween two coordinates using the two coordinates. Other methods mayalso be used.

Further, processor 302 decides whether the key selection offset issubstantially equal to or greater than a predetermined threshold (410).The threshold is set by processor 302 based on configuration parametersor default parameters or it is set by the user during operation. Aftercomparing the key selection offset with the threshold, if processor 302decides that the key selection offset is not substantially equal to orgreater than the predetermined threshold (410; NO), processor 302 usesthe key input as a period (412), i.e., the punctuation ‘.’ (period).Optionally, processor 302 also uses the key input as a period followedby a space or two spaces. Because spacebar key and the period key oftenare not configured as keys at a same level, such key transformation maysubstantially improve the user's typing experience.

On the other hand, if processor 302 decides that the key selectionoffset is greater than or equal to the predetermined threshold (410;YES), processor 302 uses the key input as a comma (414), i.e., thepunctuation ‘,’ (comma). Optionally, processor 302 also uses the keyinput as a comma followed by a space. Also, because spacebar key and thecomma key often are not configured as keys at a same level, such keytransformation may substantially improve the user's typing experience.Further, by combining the period key replacement and the comma keyreplacement into a single specified key with different key selectionactions, user convenience of typing texts may be substantiallyincreased.

Further, processor 302 processes the key input sequence (416). Processor302 processes the key input sequence based on determination of the typeand contents of the key input. As mentioned above, processor 302modifies the key input sequence based on the double selection and thekey selection offset. For example, if a key input sequence is a lettercharacter key (denoted as <character>) followed by two other letter keys<character1> and <character2>, there is no double selection event andprocessor 302 may process the key input sequence as the actualcharacters of the selected keys:

<character><character1><character2>.

If a key input sequence is a <character> followed by the doubleselection of the spacebar (denoted as <space>), the key input sequencecorresponds to <character><space><space>. However, when processor 302determines that there is the double selection event and also determinesthat the key selection offset is not greater than the predeterminedthreshold, processor 302 modifies the input sequence of

<character><space><space>

to

<character><period><space>

or simply

<character><period>.

On the other hand, when processor 302 determines that there is thedouble selection event and also determines that the offset is greaterthan or equal to the predetermined threshold, processor 302 modifies theinput sequence of

<character><space><space>

to

<character><comma><space>

or simply

<character><comma>.

When processing the input sequence, at the input level, processor 302processes key input events one at a time. For example, for the inputsequence of <character><space><space>, processor 302 receives, in asequence, a first key event <character>, a second key event <space>, anda third key event <space>, and processed the three key events on at atime.

After receiving the first key event <character>, processor 302 outputsthe <character> for display in the text field. Similarly, afterreceiving the second key event <space>, processor 302 outputs the<space> into the text field after <character>. Further, after receivingthe third key event <space>, if processor 302 determines that it is adouble selection with an offset (e.g., the offset is greater than orequal to the predetermined threshold), processor 302 removes theprevious <space> and outputs a <comma> followed by a <space> in the textfield. Processor 302 removes the previous <space> by, for example,applying a backspace command or some other deletion operation.

On the other hand, if processor 302 determines it is a double selectionwithout an offset (e.g., the offset is less than the predeterminedthreshold), processor 302 removes the previous <space> and outputs a<period> followed by a <space> in the text field. Further, processor 302also checks certain conditions before removing the previous <space> andoutputting a <comma> followed by a <space> or outputting a <period>followed by a <space>.

For example, the above double selection of <space> only takes effect ifthe first <space> comes directly after a character. In other words,selecting the <space>4 times in a row after a string of characters willresult in <comma> or <period> followed by <space><space><space>, and notmore than one <comma> or <period>. Thus, strings of spaces can beentered without being converted to strings of commas or periods. Otherconditions may also be used.

In some embodiments, two selection events occur simultaneously. That is,a key such as the spacebar may be tapped by, for example, two fingers,at the same time. Because the first <space> is not output into the textfield, no removing action is needed. The processor 302 simply outputs a<comma> followed by a <space> in the text field, assuming the twosimultaneous selections are separate by a sufficient distance. Otheractions or characters may also be performed or injected.

After processing the key input sequence, processor 302 also displays thekey input sequence to the user, such that the user can see thereplacement of the key input (i.e., replacement with <period> and<comma>). The user has the option of canceling the replacement byselecting another key, such as a backspace key. That is, when processor302 receives the input from the user to cancel the key replacement,processor 302 reverses the modification upon receiving the cancellingkey input. Other keys and configurations may also be used.

Alternatively or optionally, processor 302 chooses not to perform themodification or key replacement in real-time as described above, andmarks the special key combinations inputted by the user withoutreplacement or modification. For example, processor 302 marks the keyinput sequence as “double selection without offset” or “double selectionwith offset.” Processor 302 then sends the key input sequence, alongwith the marking, to text editing software or other applicationsoftware. The text editing software running on processor 302 performsthe modification or key replacement based on the marked special keycombinations, such as replacing the input sequence of<character><space><space>*double selection without offset* with<character><period><space> or simply with <character><period> orreplacing the input sequence of <character><space><space>*doubleselection with offset* with <character><comma><space> or simply with<character><comma>. Processor 302 or the text editing software displaysthe key input sequence to the user such that the user can view the inputand may also change or edit the input.

It should be noted that, although the spacebar is used as an example inthis disclosure, any specified key may be used. A candidate for aspecified key may need to support detection of double selection andoffset. The specified key may be configured by processor 302automatically or may be configured by the user. If the user configures aspecified key that does not support detection of double selection oroffset, the specified key would be treated as ordinary key withoutspecial processing.

Further, <period> and <comma> are also used for illustrative purposes,other characters or special characters may be used, such that desiredkey input mechanisms can be achieved to facilitate the user to inputdata using the keyboard or keypad on hand-held computing device 300. Forexample, instead of replacing the first <space> or both <space> with aperiod, a period may be inserted after the <character> and the nextcharacter entered by the user may be capitalized thereby producing twospaces between the period and the next character.

The disclosed systems and methods may provide many advantageous keyboardor keypad data input applications. For example, key transformation andreplacement may be used to provide the user a more convenient key inputmechanism to input texts and punctuations. Other applications,improvements, and modifications are obvious to those skilled in the art.

What is claimed is:
 1. A method for processing input from a keyboard ofa hand-held computing device, comprising: receiving a plurality of keyinput events; determining whether the key input events include a doubleselection event, wherein the double selection event includes a first keyselection action of a specified key and a second key selection action ofthe specified key; determining a key selection offset between the firstkey selection action and the second key selection action; and using atleast a first key, different from the specified key, as key input of thedouble selection event based on the determination that the key selectionoffset is substantially equal to or greater than a predeterminedthreshold.
 2. The method of claim 1, further comprising: using at leasta second key, different from the specified key and the first key, as thekey input of the double selection event based on the determination thatthe key selection offset is less than the predetermined threshold. 3.The method according to claim 2, wherein: the specified key is aspacebar; the first key is a period; and the second key is a comma. 4.The method according to claim 3, wherein using at least a period as thekey input of the double selection event further includes: entering aperiod followed by a space instead of two spaces corresponding to thedouble selection of the spacebar.
 5. The method according to claim 3,wherein using at least a comma as the key input of the double selectionevent further includes: entering a comma followed by a space instead oftwo spaces corresponding to the double selection of the spacebar.
 6. Themethod according to claim 1, wherein determining whether there is adouble selection event further includes: determining a time differencebetween the first key selection action and the second key selectionaction; comparing the time difference with a predetermined time period;when the time difference is within the predetermined time period,determining that there is a double selection event; and when the timedifference is not within the predetermined time period, determining thatthere is not a double selection event.
 7. The method according to claim6, wherein: the keyboard is a virtual keyboard on a touch screen; thefirst key selection action is a first key touching action; the secondkey selection action is a second key touching action; and the timedifference is between the first key touching action and the second keytouching action.
 8. The method according to claim 3, wherein determininga key selection offset further includes: determining the key selectionoffset based on a first point of the first key selection action and asecond point of the second key selection action.
 9. The method accordingto claim 8, wherein: the first point is at a left side of the spacebar;the second point is at a right side of the spacebar; and the keyselection offset is determined as the length of the spacebar.
 10. Themethod according to claim 8, wherein: the first key selection action isa first key touching action; the second key selection action is a secondkey touching action; and the key selection offset is a distance betweentwo coordinates of the first point and the second point, respectively.11. A hand-held computing device, comprising: a wireless communicationmodule; a memory module; a keyboard; and a processor coupled to thememory module, the wireless communication module, and the keyboard,wherein the processor is configured to: receive a plurality of key inputevents; determine whether, from the plurality of key input events, thereis a double selection event corresponding to a specified key from thekeyboard, wherein the double selection includes a first key selectionaction and a second key selection action; when there is the doubleselection event corresponding to the specified key, determine a keyselection offset between the first key selection action and the secondkey selection action; decide whether the key selection offset issubstantially equal to or greater than a predetermined threshold; whenthe key selection offset is greater than the predetermined threshold,use at least a first key, different from the specified key, as key inputof the double selection event; and when the key selection offset is lessthan the predetermined threshold, use at least a second key, differentfrom the specified key and the first key, as the key input of the doubleselection event.
 12. The hand-held computing device according to claim11, wherein the processor is further configured to: when there is notthe double selection event corresponding to the specified key, useactual key characters corresponding to the plurality of key inputevents.
 13. The hand-held computing device according to claim 11,wherein: the specified key is a spacebar; the first key is a period; andthe second key is a comma.
 14. The hand-held computing device accordingto claim 13, wherein, to use at least a period as the key input of thedouble selection event, the processor is further configured to: enter aperiod followed by a space instead of two spaces corresponding to thedouble selection of the spacebar.
 15. The hand-held computing deviceaccording to claim 13, wherein, to use at least a comma as the key inputof the double selection event, the processor is further configured to:enter a comma followed by a space instead of two spaces corresponding tothe double selection of the spacebar.
 16. The hand-held computing deviceaccording to claim 13, wherein, to determine whether there is a doubleselection event, the processor is further configured to: determine atime difference between the first key selection action and the secondkey selection action; compare the time difference with a predeterminedtime period; when the time difference is within the predetermined timeperiod, determine that there is a double selection event; and when thetime difference is not within the predetermined time period, determinethat there is not a double selection event.
 17. The hand-held computingdevice according to claim 16, further including: a touch screen coupledto the processor, wherein: the keyboard is a virtual keyboard on thetouch screen; the first key selection action is a first key touchingaction; the second key selection action is a second key touching action;and the time difference is between the first key touching action and thesecond key touching action.
 18. The hand-held computing device accordingto claim 11, wherein, to determine a key selection offset, the processoris further configured to: determine the key selection offset based on afirst point of the first key selection action and a second point of thesecond key selection action.
 19. The hand-held computing deviceaccording to claim 18, wherein: the first point is at a left side of thespacebar; the second point is at a right side of the spacebar; and thekey selection offset is determined as the length of the spacebar. 20.The hand-held computing device according to claim 18, wherein: the firstkey selection action is a first key touching action; the second keyselection action is a second key touching action; and the key selectionoffset is a distance between two coordinates of the first point and thesecond point, respectively.